function move(ele, options, fn = () => {}) {
  let count = 0
  for (let key in options) {
    count++
    if (key === 'opacity') options[key] *= 100
    const timer = setInterval(() => {
      let current
      if (key === 'opacity') {
        current = window.getComputedStyle(ele)[key] * 100
      } else {
        current = parseInt(window.getComputedStyle(ele)[key])
      }
      let distance = (options[key] - current) / 10
      distance = distance > 0 ? Math.ceil(distance) : Math.floor(distance)

      if (current === options[key]) {
        clearInterval(timer)
        count--
        if (!count) fn()
      } else {
        if (key === 'opacity') {
          ele.style[key] = (current + distance) / 100
        } else {
          ele.style[key] = current + distance + 'px'
        }
      }
    }, 20)
  }
}
